package com.gt.wxpay.cashier.payment.application;

import com.gt.wxpay.cashier.domain.model.CashierPayment;

/**
 * packageName com.gt.wxpay.cashier.payment.application
 *
 * @author GuoTong
 * @version JDK 8
 * @className MerchantRefundHandlerService
 * @date 2024/3/25
 * @description 商户退款处理流程
 */
public interface MerchantRefundHandlerService {

    /**
     * 订单退款流程---商户退款处理流程||可复用重复利用
     * 退款的订单cashierPayment
     *
     * @param cashierPayment cashierPayment
     */
    public void refundHandler(CashierPayment cashierPayment);


    /**
     * 商户充值流程处理---退款失败订单进入退款
     * cashierPayment|原始商户侧退款失败的订单
     *
     * @param merchantId merchantId
     */
    public void merchantRechargePostProcessing(String merchantId);


    /**
     * 商户结算流程处理---退款失败订单进入退款
     * cashierPayment|原始商户侧退款失败的订单
     *
     * @param merchantId merchantId
     */
    public void merchantBalancePostProcessing(String merchantId);


    /**
     * 订单退款---走平台垫付流程
     *
     * @param cashierPayment cashierPayment
     */
    public void usePlatformAdvancePayment(CashierPayment cashierPayment);
}
